# 第二章 内容需求梳理
# 原型选择
为了体现课程内容的实用性,前端原型APP我们选择一款微信小程序——零食商贩,读者可在微信中搜索该小程序或扫一扫体验:
选择该APP的理由如下:
- 纯前端的应用,符合主流技术栈,符合教程大纲
- 电商类,涉及到商品管理、订单管理等,推广位管理等贴近真实的业务场景
本教程中,前端APP并不是必须,只是一个参考的原型,所以本教程不会教大家写一个小程序,只是通过梳理这个APP的内容管理需求来实现一个CMS。如果读者想获取原型APP的源码,可在慕课网购买《ThinkPHP5.0+小程序商城构建全栈应用》视频课程,这个课程也是属于一个前后端分离的项目实战教程,小程序是项目的前端应用部分,课程附赠最终的前后端源码。
# 首页内容梳理
从上面的首页演示可以看出,首页涉及三大内容模块即轮播图
、精选主题
、最近新品
,这是最常见的电商类APP业务模块。
- 需求背景
首页对于一个APP来说,是第一个接触用户的落地页面(启动页除外),首页的UI、交互、业务模块、性能都直接影响了用户的留存和转化,本小节主要从业务模块的角度出发去分析。
在现实业务场景中,我们经常需要第一时间把活动
、推荐
、新品发布
等信息及时呈现给用户,而且这类信息还存在着临时性(特定时期有效,如双11、618)、不确定性(需要临时下架),这就意味着我们不可能把这类信息写死在前端的代码中,因为无论是小程序还是Android、iOS,应用更新发布都是需要审核时间的,而且还可能过不了审。这种业务信息一有变化通过改代码重新审核发布的流程无论从管理、经营还是成本角度考虑都是不可取的,在某些情况下还可能会造成公司经济损失。
业务员想看看目前正在推广的产品信息需要打开APP;用户在11月12日还看到了双11的1元秒杀iPhone X并购买成功;推广位用了某明星的相片后收到了律师函警告;影响技术部门与业务部门的关系等等
- 解决方案
解决办法也很简单,把这部分的数据存到数据库中,每次加载首页的时候,前端就去发起一个请求调用后端接口获取数据然后渲染到页面,当业务内容有变化的时候,我们只需要修改下数据库里的内容就可以实现实时的动态改变业务信息。
- 实现方案
- 数据库中创建banner(轮播图)、theme(专题)、product(商品)三张表
- 通过CMS实现对相应的数据库表的增、删、改、查
- APP后端实现轮播图、专题、商品列表接口供APP前端前端调用。
这里的APP后端指的是为原型APP提供数据和业务逻辑处理的后端,因为原型APP本身也是一个前后端分离的项目。
# 分类内容梳理
这个页面主要是对商品分类的展示,页面主要分为左右两个区域。点击左边区域的分类标签时,右边区域会显示相应分类的头图、分类含有的商品。
- 需求背景
这个页面的内容管理需求本质上与首页一致,分类会随着业务发展而调整,商品可能会上新、下架、缺货,一样存在着临时性和不确定性。
- 解决方案
这部分的数据存到数据库中,每次加载分类页面的时候,前端就去发起一个请求调用后端接口获取数据然后渲染到页面,当业务内容有变化的时候,我们只需要修改下数据库里的内容就可以实现实时的动态改变业务信息。
- 实现方案
- 数据库中创建category(分类)表,produc(商品)表用一个category_id字段对应category表里的某条分类记录,来表明这个商品属于哪个分类
- 通过CMS实现对相应的数据库表的增、删、改、查
- APP后端实现查询分类列表、查询指定分类下商品接口供前端APP调用。
# 购物车、我的内容管理需求
购物车
页面没有内容管理需求,购物车里有什么是用户自己决定的。
至于我的
页面,目前原型APP中该页面没有内容管理的需求,但在真实业务场景中这个页面往往也是堆砌了各种推广位,这部分也是属于内容管理需求,后面具体实战开发过程中会以扩展内容讲解。另外通过我的
这个页面可以延伸出一个会员管理的需求。对于用户来说,在APP里他只关注和看到自己,但是对于公司来说,它是需要看到全部所有用户。每个APP都存在着会员体系,会有一张user
表,记录这用户的一些基本信息,如姓名、手机、年龄、城市等等。随着业务的发展,会员体量的增加,海量的会员数据有助于提供决策的数据支持,另外针对一些不良用户,也需要对其账户进行禁用或者限制功能,这些也是内容管理的需求。
无论是什么应用,都是围绕着
用户
的,互联网应用这块更是如此,所以基于用户
的内容管理和利用方式多种多样,可大可小,本教程也会由浅及深,通过几个真实业务需求来实现这一块的管理。
# APP内业务管理需求
在原型APP的业务逻辑中,用户下单并成功支付后,订单会处于待发货的状态,当订单发货了,需要改变订单的状态来让用户知道已经发货。
- 需求背景
订单管理属于复杂、常见的内容管理之一,对于用户来说,他需要关注自己的订单有效性和实时状态,对于公司来说,需要订单信息来评估经营情况和处理售后问题。
- 解决方案
使用CMS进行订单数据管理。
- 实现方案
- 通过CMS实现订单管理模块,提供各种条件查询、订单操作、导出excel等。
# 需求汇总
以上就是对原型APP——零食商贩的页面内容管理需求的梳理,后面的章节将带着大家从这些需求出发,逐个开发实现对其内容管理的实现,并以此为基础,发散思维,模拟真实业务需求,延伸到各个业务相关管理功能的开发。这里我们先简单对需求进行汇总和拟定部分需要延伸的管理需求,后面会出于教程内容连贯性、知识点覆盖考虑发生变化(绝大数情况是下好的变化):
回顾第一章的内容,以上的需求内容我们直接操作数据库可以吗?作者就亲身经历过没有利用CMS直接操作数据库的日子,如果你感受不到那种痛苦,那么请回过头去看看第一章中介绍CMS的小节内容
# 最终架构
细心的你应该发现,我们开发一个CMS,并不会对原来项目产生任何影响。
← 第一章 关于教程 第三章 开发环境搭建 →